Skip to content

Conversation

@sourcefrog
Copy link
Contributor

@sourcefrog sourcefrog commented Sep 7, 2025

Summary

Today, Zed uses Mold on Linux, but Wild can be significantly faster.

On my machine, Wild is 14% faster at a whole-tree clean build, 20% faster on an incremental build with a minimal change, and makes no measurable effect on runtime performance of tests.

However, Wild's page says it's not yet ready for production, so it seems to early to switch for production and CI builds.

This PR keeps using Mold in CI and lets developers choose in their own config what linker to use. (The downside of this is that after landing this change, developers will have to do some local config or it will fall back to the default linker which may be slower.)

Wild 0.6 is out, and their announcement has some benchmarks.

cc @davidlattimore from Wild, just fyi

Tasks

  • Measure Wild build, incremental build, and runtime performance in different scenarios
  • Remove the Linux linker config from .cargo/config.toml in the tree
  • Test rope benchmarks etc
  • Set the linker to Mold in CI
  • Add instructions to use Wild or Mold into linux.md
  • Add a script to download Wild
  • Measure binary size
  • Recommend Wild from scripts/linux

Benchmarks

wild 0.6 (rust 1.89) mold 2.37.1 (1.89) lld (rust 1.90) wild advantage
clean workspace build 176s 184s 182s 5% faster than mold
nextest run workspace after build 137s 142s 137s in the noise?
incremental rebuild 3.9s 5.0s 6.6s 22% faster than mold

I didn't observe any apparent significant change in runtime performance or binary size, or in the in-tree microbenchmarks.

Release Notes:

  • N/A

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Sep 7, 2025
@xdBronch
Copy link
Contributor

xdBronch commented Sep 7, 2025

I think this needs some benchmarks of the output, wild doesn't support lto

edit: or not..? davidlattimore/wild#1

For rust specifically, LTO is normally done by rustc rather than the linker, so it would already work with wild.

no clue how this works! if anyone does I'd be interested to hear, otherwise disregard this i suppose.

@sourcefrog
Copy link
Contributor Author

I think this needs some benchmarks of the output, wild doesn't support lto

That's a great point, we should at least check it. Are there any scripted benchmarks that I can run? I don't see any in the tree.

@dvdsk
Copy link
Member

dvdsk commented Sep 8, 2025

First off thanks for working on build speed! Every bit there helps. Though we might be jumping the gun on using Wild. They mention its not yet ready for production builds.

We could mitigate that risk by limiting wild to debug builds. Then we get the speedup during development without the risk to releases.

Do please test the impact on incremental builds, we cant have regressions there.

@dvdsk dvdsk marked this pull request as draft September 8, 2025 15:49
@sourcefrog sourcefrog changed the title RFC: Use Wild rather than Mold on Linux RFC: Use Wild rather than Mold on Linux, only for x86_64 debug builds Sep 10, 2025
@sourcefrog
Copy link
Contributor Author

sourcefrog commented Sep 10, 2025

First off thanks for working on build speed! Every bit there helps. Though we might be jumping the gun on using Wild. They mention its not yet ready for production builds.

We could mitigate that risk by limiting wild to debug builds. Then we get the speedup during development without the risk to releases.

Do please test the impact on incremental builds, we cant have regressions there.

Thanks for the feedback and encouragement.

I had a look at how to turn it on only for Linux debug builds, but I can't see (at the moment) how to do it in Cargo.toml:

(Maybe there's some way around it.)

I guess build scripts can both look at the platform and whether it's a debug build, but I think that would have to be done in every single package's build.rs which seems way too intrusive.

Some options:

  1. Don't override the linker in the tree, and instead suggest that developers configure wild (or mold) in their ~/.cargo/. Set it to mold or wild respectively in CI. Maybe this is the most practical way to get some experience before changing the release builds?
  2. Or, just wait until Wild hits 1.0 or says they're ready for production use?

I'll also try to measure the performance on incremental builds and the runtime performance on tests.

@dvdsk
Copy link
Member

dvdsk commented Sep 11, 2025

.I had a look at how to turn it on only for Linux debug builds, but I can't see (at the moment) how to do it in Cargo.toml:

profile.debug.build-overrides can't be conditional on platform
target.* or target.cfg(...) unfortunately [can't see whether it's a debug build](https://doc.rust-lang.org/cargo/reference/> config.html#:~:text=Do%20not%20try%20to%20match%20on%20debug_assertions%2C%20test)

(Maybe there's some way around it.)

Damn.. I really thought that was possible. Thanks for investigating and clearly explaining why it its not possible atm.

I guess build scripts can both look at the platform and whether it's a debug build, but I think that would have to be done in every single package's build.rs which seems way too intrusive.

Agreed

Some options:

  1. Don't override the linker in the tree, and instead suggest that developers configure wild (or mold) in their ~/.cargo/. Set > it to mold or wild respectively in CI. Maybe this is the most practical way to get some experience before changing the > release builds?
  2. Or, just wait until Wild hits 1.0 or says they're ready for production use?

I agree with suggesting developers configure wild. This https://github.com/zed-industries/zed/blob/main/docs/src/development/linux.md#building-zed-for-linux might be a good place for a note.

I'm not sure if it a good idea to set it in CI if we can guarantee everyone is running wild locally too. Debugging issues that only happen in CI caused by a linker that's different (that you are unaware of) seems hellish. If you had to manually setup wild locally you have a chance of recollecting that.

Like you say it might be best to keep an eye on wild and once the warning not to use it in production get dropped put it in as default?

@sourcefrog
Copy link
Contributor Author

sourcefrog commented Sep 11, 2025 via email

@dvdsk
Copy link
Member

dvdsk commented Sep 11, 2025

OK so it sounds like a path forward is to

Good plan! Lets go :)

@sourcefrog
Copy link
Contributor Author

sourcefrog commented Sep 15, 2025

I realized the current in-tree config is a bit confusing if people also have Wild configured in their home directory, because cargo merges array values from multiple config file and so you end up with flags asking for both Mold and Wild, and presumably relying on one of them having priority inside rustc.

So that's arguably a good reason to leave this to the user config, as some fraction of Rust devs may have Wild configured globally?

Benchmarks

In all these benchmarks I'm ignoring the results from the first run to let it build and warm up, and then averaged 3 attempts.

Is there an automated benchmark for runtime performance? I didn't see one in the tree.

This is on an AMD 5900X now with 64GiB, so a somewhat old machine.

test suite performance

cargo nextest run --workspace

Wild: 138s
Mold: 144s

doctest performance

doctest builds and runs lots of small test targets, so arguably is a good test for this sort of thing. After an initial build of the tree, running

cargo test --doc --workspace

Wild: 61s
Mold: 61s

incremental rebuild

It looks like in jj worktrees the build stamp in cli causes it to always rebuild, so that seems like a decent case of an incremental build

 cargo build

Wild: 4.1s
Mold: 5.1s

Smoke test

I built 99b7167 with cargo b -r under wild, launched it and poked around in my source tree, including running rust-analyzer and a shell, and it seems to basically work.

Conclusion

I don't see any performance downside to recommending Wild on Linux. There is a complexity cost from people configuring it individually, and some risk that there could be bugs due to differences in behavior vs Mold.

@dvdsk
Copy link
Member

dvdsk commented Sep 15, 2025

Is there an automated benchmark for runtime performance? I didn't see one in the tree.

We have some benchmarks for hot paths/parts in zed (like the text representation (crates/rope/benches/). Though if it seems good enough perf wise to debug with for you its good enough to recommend.

Wild: 4.1s
Mold: 5.1s

Thats a 20% reduction! Amazing!

I don't see any performance downside to recommending Wild on Linux. There is a complexity cost from people configuring it individually, and some risk that there could be bugs due to differences in behavior vs Mold.

I fully agree with you there! Lets recommend the switch.

If your looking for more build speedups btw bevy has a great compile performance section: https://bevy.org/learn/quick-start/getting-started/setup/#enable-fast-compiles-optional.

@sourcefrog
Copy link
Contributor Author

I ran cargo bench in crates/rope with Mold and with Wild. Some are faster or slower in one case or another. I haven't made a careful analysis but I'd guess it's noise. There does not seem to be any obvious trend that Wild is slower at runtime, and I wouldn't expect a linker to have a strong effect on inner-loop code.

Rope benchmarks

With Wild

running 8 tests
test chunk::tests::test_nth_set_bit_random ... ignored
test chunk::tests::test_random_chunks ... ignored
test tests::test_all_4_byte_chars ... ignored
test tests::test_chunks_equals_str ... ignored
test tests::test_clip ... ignored
test tests::test_lines ... ignored
test tests::test_prev_next_line ... ignored
test tests::test_random_rope ... ignored

test result: ok. 0 passed; 0 failed; 8 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running benches/rope_benchmark.rs (/home/mbp/src/zed.wild/target/release/deps/rope_benchmark-519331007e2ca352)
Gnuplot not found, using plotters backend
push/4096               time:   [340.47 µs 344.20 µs 348.09 µs]
                        thrpt:  [11.222 MiB/s 11.349 MiB/s 11.473 MiB/s]
Found 7 outliers among 100 measurements (7.00%)
  5 (5.00%) high mild
  2 (2.00%) high severe
Benchmarking push/65536: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.7s, enable flat sampling, or reduce sample count to 60.
push/65536              time:   [1.1201 ms 1.1913 ms 1.2763 ms]
                        thrpt:  [48.970 MiB/s 52.463 MiB/s 55.796 MiB/s]
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) high mild
  7 (7.00%) high severe

append/4096             time:   [1.0183 µs 1.0266 µs 1.0379 µs]
                        thrpt:  [3.6755 GiB/s 3.7157 GiB/s 3.7463 GiB/s]
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe
append/65536            time:   [12.072 µs 12.123 µs 12.180 µs]
                        thrpt:  [5.0112 GiB/s 5.0346 GiB/s 5.0558 GiB/s]
Found 7 outliers among 100 measurements (7.00%)
  2 (2.00%) high mild
  5 (5.00%) high severe

slice/4096              time:   [36.303 µs 36.522 µs 36.742 µs]
                        thrpt:  [106.32 MiB/s 106.96 MiB/s 107.60 MiB/s]
Found 14 outliers among 100 measurements (14.00%)
  5 (5.00%) low mild
  4 (4.00%) high mild
  5 (5.00%) high severe
slice/65536             time:   [694.11 µs 695.01 µs 695.96 µs]
                        thrpt:  [89.804 MiB/s 89.926 MiB/s 90.044 MiB/s]
Found 11 outliers among 100 measurements (11.00%)
  4 (4.00%) high mild
  7 (7.00%) high severe

bytes_in_range/4096     time:   [5.5572 µs 5.5664 µs 5.5765 µs]
                        thrpt:  [700.48 MiB/s 701.76 MiB/s 702.92 MiB/s]
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  8 (8.00%) high severe
bytes_in_range/65536    time:   [145.46 µs 145.76 µs 146.13 µs]
                        thrpt:  [427.71 MiB/s 428.78 MiB/s 429.68 MiB/s]
Found 15 outliers among 100 measurements (15.00%)
  8 (8.00%) high mild
  7 (7.00%) high severe

chars/4096              time:   [1.0167 µs 1.0180 µs 1.0193 µs]
                        thrpt:  [3.7426 GiB/s 3.7474 GiB/s 3.7519 GiB/s]
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  5 (5.00%) high severe
chars/65536             time:   [17.005 µs 17.067 µs 17.135 µs]
                        thrpt:  [3.5621 GiB/s 3.5762 GiB/s 3.5891 GiB/s]
Found 11 outliers among 100 measurements (11.00%)
  5 (5.00%) high mild
  6 (6.00%) high severe

clip_point/4096         time:   [69.973 µs 70.160 µs 70.369 µs]
                        thrpt:  [55.511 MiB/s 55.676 MiB/s 55.825 MiB/s]
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) high mild
  4 (4.00%) high severe
clip_point/65536        time:   [2.0990 ms 2.1056 ms 2.1124 ms]
                        thrpt:  [29.588 MiB/s 29.683 MiB/s 29.775 MiB/s]
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

point_to_offset/4096    time:   [22.014 µs 22.040 µs 22.071 µs]
                        thrpt:  [176.98 MiB/s 177.24 MiB/s 177.45 MiB/s]
Found 19 outliers among 100 measurements (19.00%)
  7 (7.00%) high mild
  12 (12.00%) high severe
Benchmarking point_to_offset/65536: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 7.6s, enable flat sampling, or reduce sample count to 50.
point_to_offset/65536   time:   [842.20 µs 843.69 µs 845.41 µs]
                        thrpt:  [73.929 MiB/s 74.079 MiB/s 74.211 MiB/s]
Found 11 outliers among 100 measurements (11.00%)
  2 (2.00%) high mild
  9 (9.00%) high severe

Mold:

running 8 tests
test chunk::tests::test_nth_set_bit_random ... ignored
test chunk::tests::test_random_chunks ... ignored
test tests::test_all_4_byte_chars ... ignored
test tests::test_chunks_equals_str ... ignored
test tests::test_clip ... ignored
test tests::test_lines ... ignored
test tests::test_prev_next_line ... ignored
test tests::test_random_rope ... ignored

test result: ok. 0 passed; 0 failed; 8 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running benches/rope_benchmark.rs (/home/mbp/src/zed.wild/target/release/deps/rope_benchmark-519331007e2ca352)
Gnuplot not found, using plotters backend
push/4096               time:   [340.47 µs 344.20 µs 348.09 µs]
                        thrpt:  [11.222 MiB/s 11.349 MiB/s 11.473 MiB/s]
Found 7 outliers among 100 measurements (7.00%)
  5 (5.00%) high mild
  2 (2.00%) high severe
Benchmarking push/65536: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.7s, enable flat sampling, or reduce sample count to 60.
push/65536              time:   [1.1201 ms 1.1913 ms 1.2763 ms]
                        thrpt:  [48.970 MiB/s 52.463 MiB/s 55.796 MiB/s]
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) high mild
  7 (7.00%) high severe

append/4096             time:   [1.0183 µs 1.0266 µs 1.0379 µs]
                        thrpt:  [3.6755 GiB/s 3.7157 GiB/s 3.7463 GiB/s]
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe
append/65536            time:   [12.072 µs 12.123 µs 12.180 µs]
                        thrpt:  [5.0112 GiB/s 5.0346 GiB/s 5.0558 GiB/s]
Found 7 outliers among 100 measurements (7.00%)
  2 (2.00%) high mild
  5 (5.00%) high severe

slice/4096              time:   [36.303 µs 36.522 µs 36.742 µs]
                        thrpt:  [106.32 MiB/s 106.96 MiB/s 107.60 MiB/s]
Found 14 outliers among 100 measurements (14.00%)
  5 (5.00%) low mild
  4 (4.00%) high mild
  5 (5.00%) high severe
slice/65536             time:   [694.11 µs 695.01 µs 695.96 µs]
                        thrpt:  [89.804 MiB/s 89.926 MiB/s 90.044 MiB/s]
Found 11 outliers among 100 measurements (11.00%)
  4 (4.00%) high mild
  7 (7.00%) high severe

bytes_in_range/4096     time:   [5.5572 µs 5.5664 µs 5.5765 µs]
                        thrpt:  [700.48 MiB/s 701.76 MiB/s 702.92 MiB/s]
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  8 (8.00%) high severe
bytes_in_range/65536    time:   [145.46 µs 145.76 µs 146.13 µs]
                        thrpt:  [427.71 MiB/s 428.78 MiB/s 429.68 MiB/s]
Found 15 outliers among 100 measurements (15.00%)
  8 (8.00%) high mild
  7 (7.00%) high severe

chars/4096              time:   [1.0167 µs 1.0180 µs 1.0193 µs]
                        thrpt:  [3.7426 GiB/s 3.7474 GiB/s 3.7519 GiB/s]
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  5 (5.00%) high severe
chars/65536             time:   [17.005 µs 17.067 µs 17.135 µs]
                        thrpt:  [3.5621 GiB/s 3.5762 GiB/s 3.5891 GiB/s]
Found 11 outliers among 100 measurements (11.00%)
  5 (5.00%) high mild
  6 (6.00%) high severe

clip_point/4096         time:   [69.973 µs 70.160 µs 70.369 µs]
                        thrpt:  [55.511 MiB/s 55.676 MiB/s 55.825 MiB/s]
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) high mild
  4 (4.00%) high severe
clip_point/65536        time:   [2.0990 ms 2.1056 ms 2.1124 ms]
                        thrpt:  [29.588 MiB/s 29.683 MiB/s 29.775 MiB/s]
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild

point_to_offset/4096    time:   [22.014 µs 22.040 µs 22.071 µs]
                        thrpt:  [176.98 MiB/s 177.24 MiB/s 177.45 MiB/s]
Found 19 outliers among 100 measurements (19.00%)
  7 (7.00%) high mild
  12 (12.00%) high severe
Benchmarking point_to_offset/65536: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 7.6s, enable flat sampling, or reduce sample count to 50.
point_to_offset/65536   time:   [842.20 µs 843.69 µs 845.41 µs]
                        thrpt:  [73.929 MiB/s 74.079 MiB/s 74.211 MiB/s]
Found 11 outliers among 100 measurements (11.00%)
  2 (2.00%) high mild
  9 (9.00%) high severe

This retains Mold in CI and lets developers choose anything locally.
@sourcefrog sourcefrog force-pushed the wild branch 3 times, most recently from 4625474 to 9471804 Compare September 20, 2025 16:44
@sourcefrog
Copy link
Contributor Author

There's no significant detail in binary size: Wild's output is very slightly smaller.

With Mold:

; ls -l target/release/zed
-rwxrwxr-x 2 mbp 1737133344 Sep 20 09:23 target/release/zed*

; size target/release/zed
   text    data     bss     dec     hex filename
317252396       7076544 2087724 326416664       1374b918        target/release/zed

With Wild:

; ls -l target/release/zed
-rwxrwxr-x 2 mbp 1731492763 Sep 20 09:53 target/release/zed*
; size target/release/zed
   text    data     bss     dec     hex filename
317916558       7012528 2083849 327012935       137dd247        target/release/zed

@sourcefrog sourcefrog changed the title RFC: Use Wild rather than Mold on Linux, only for x86_64 debug builds RFC: Recommend and enable using Wild rather than Mold on Linux for local builds Sep 20, 2025
@sourcefrog sourcefrog marked this pull request as ready for review September 20, 2025 17:00
@sourcefrog
Copy link
Contributor Author

OK I think this is ready for another look.

@sourcefrog sourcefrog force-pushed the wild branch 2 times, most recently from 46ed8de to 7c8fc00 Compare September 22, 2025 15:15
@sourcefrog sourcefrog marked this pull request as draft September 22, 2025 15:19
@sourcefrog
Copy link
Contributor Author

Since Rust just changed the default on Linux to lld I'll measure against that too. Feedback's still welcome but please don't merge it yet.

script/linux Outdated
fi
echo "Note: It's recommended to install and configure Wild or Mold for faster builds."
echo " Run script/install-wild or script/install-mold."
echo " Then see doc/src/development/linux.md to set your cargo config."
Copy link
Member

@dvdsk dvdsk Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we link/be a bit more specific about where to look in linux.md?

Alternatively (if you feel comfortable with it) we can do the cargo config change from the script. (lets in that case also echo what we are doing and how to undo it)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(but honestly at this point I am grasping at straws to give feedback, this all looks great!)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think changing the user wide config feels a bit intrusive for users who work on projects other than Zed.

Hopefully at some point we could decide it's reliable enough and go back to an in-tree config.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think changing the user wide config feels a bit intrusive for users who work on projects other than Zed.

Good point. Can we print the instructions at the end of the script?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done:

; ./script/linux
....
+ which rustup
+ cat
Note: It's recommended to install and configure Wild or Mold for faster builds.
      Run script/install-wild or script/install-mold.
      Then add these lines to your ~/.cargo/config.toml:

[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]

[target.aarch64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]



Finished installing Linux dependencies with script/linux
+ exit 0

@mati865
Copy link
Contributor

mati865 commented Sep 22, 2025

Since Rust just changed the default on Linux to lld I'll measure against that too. Feedback's still welcome but please don't merge it yet.

Definitely having more tests won't hurt, but I doubt you'd see an improvement compared to Mold/Wild: rust-lang/rust#146421 (comment)

FYI, David is going to release Wild 0.6 soon.

@sourcefrog
Copy link
Contributor Author

Great, I see the Wild 0.6 release and have retested with that. That post also has some impressive benchmarks.

Strangely the performance of Mold also seems to have improved in benchmarking again today. I'm not sure if a recent OS update improved it dramatically or if there's something wrong with my measurements. I still see a significant improvement in incremental builds but not nearly as much in clean builds. I'll keep looking into it.

There's no point adding this devx complication if there's no significant win, but I'm also surprised it's gone away. On the other hand stripping 1s/ 20% off an incremental build, which is reproducible, seems useful in itself.

@sourcefrog
Copy link
Contributor Author

OK, overall I think this is worth merging, mostly for the improvement in incremental build times.

@sourcefrog sourcefrog marked this pull request as ready for review September 24, 2025 16:33
cat <<EOF
Note: It's recommended to install and configure Wild or Mold for faster builds.
Run script/install-wild or script/install-mold.
Then add these lines to your ~/.cargo/config.toml:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything following Then add these lines should probably live in script/install-wild. Since you might run install-wild after having already done install-linux and forget about those post install steps.

Copy link
Contributor

@mati865 mati865 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't test my proposed changes, but I think they should be fine.

sourcefrog and others added 2 commits September 24, 2025 15:04
Co-authored-by: Mateusz Mikuła <[email protected]>
@dvdsk dvdsk merged commit 10b99c6 into zed-industries:main Sep 25, 2025
24 checks passed
@dvdsk
Copy link
Member

dvdsk commented Sep 25, 2025

Lets ship it!

I want those 20% lower compile times :)

Thanks again for the PR @sourcefrog!

sourcefrog added a commit to sourcefrog/zed that referenced this pull request Sep 26, 2025
Wild changed in 0.6.0 to using gzip rather than xz, and changed the
format of the package name.

Follows on from and fixes zed-industries#37717
dvdsk pushed a commit that referenced this pull request Sep 26, 2025
Wild changed in 0.6.0 to using gzip rather than xz, and changed the
format of the package name.

Follows on from and fixes
#37717

cc @dvdsk @mati865 

Release Notes:

- N/A
sourcefrog added a commit to sourcefrog/zed that referenced this pull request Sep 26, 2025
dvdsk pushed a commit that referenced this pull request Sep 26, 2025
Follows on from
#37717 (comment)

@dvdsk suggested this but I didn't get to it in the previous PR.

# Tested

```
; sudo rm /usr/local/bin/wild
; ./script/install-wild
Downloading from https://github.com/davidlattimore/wild/releases/download/0.6.0/wild-linker-0.6.0-x86_64-unknown-linux-gnu.tar.gz
Wild is installed to /usr/local/bin/wild

To make it your default, add or merge these lines into your ~/.cargo/config.toml:

[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]

[target.aarch64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=--ld-path=wild"]

```

```
; sudo rm /usr/local/bin/mold
; ./script/install-mold 2.34.0
Downloading from https://github.com/rui314/mold/releases/download/v2.34.0/mold-2.34.0-x86_64-linux.tar.gz
Mold is installed to /usr/local/bin/mold

To make it your default, add or merge these lines into your ~/.cargo/config.toml:

[target.'cfg(target_os = "linux")']
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
```

Release Notes:

- N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants